文章目录
  1. 1. 当BM25遇到长文档
  2. 2. 高效解决方案
  3. 3. 实验效果验证
  4. 4. 参考
BM25在长文档下会失效,文本是记录SIGIR上的一个Paper的解决方案~

当BM25遇到长文档

文档相关性模型-BM25的拟合公式如下:

$\sum_{i\in Q} log \frac {(r_i+0.5)((N-R)-(n_i-r_i)+0.5)}{(n_i-r_i+0.5)(R-r_i+0.5)} \cdot \frac{(k_1+1)f_i}{K+f_i} \cdot \frac{(k_2+1)qf_i}{k_2+qf_i}$

其中第一部分表示BIM的值,第二部分表示在文档中的权重,第三部分表示在查询词中的权重,(具体符号解释参考之前的BM25介绍)现将第二部分单独拿出来:

$f(q,D)=\frac{(k_1+1) \times TF}{k_1 \times ((1-b)+b \cdot \frac{dl}{avdl} )+TF}=\frac{(k_1+1) \times c’(q,D)}{k_1+c’(q,D)}$

其中:

$c’(q,D)=\frac{TF}{1-b+b \cdot \frac{dl}{avdl}}$

现在先来做一个假设,假设当前有个文档很长很长,也就是$dl$这个值很大,则可以发现$c’(q,D)$就会很小,小到接近于0,因此会导致文档部分的因子$f(q,D)$也会接近于0,几乎和这个词没有出现在这个文档一样..-_-

在这种情况下,针对长文档,BM25的效果会比较差
下面的图就是BM25在不同文档长度下的实验

可以发现在BM25中,随着文档的变长,相关性在变高,但是其被检索的概率并没有随着相关性的趋势而变高,也就是长文档使用BM25的效果变得比较差。

高效解决方案

为了避免长文档在BM25的相关性中被惩罚,我们需要对文档权重$f(q,D)$做一个规范化约束,但是由于BM25早已被公认为是一种比较有效的文档相关性,所以这个约束不能破坏掉BM25自身的特征.

我们希望规范化约束之后保持以下三点特性:

  1. 当$c’(q,D)=0$的时候,$f(q,D)$也为0
  2. 随着$c’(q,D)$的变大,$f(q,D)$也需要呈现单调递增,但是会趋向于一个最大值
  3. 随着$c’(q,D)$的减少,$f(q,D)$会单调递减趋向于一个最小值,但是这个最小值需要足够大

就是因为原生的BM25不满足第3点,所以会出现在长文档下BM25出现失效的情况

而下面的改进$f’(q,D)$正好可以满足上述三个特性:

使用时针对原来的$c’(q,D)$值增加了一个平滑项$\delta$,增加了平滑项之后依然满足第1、2点特性,并且当$c’(q,D)>0$的时候$f’(q,D)$有一个下界:

$\frac{(k_1+1) \cdot \delta}{k_1+ \delta}$

这样也正好可以满足第3点特性

进行该项小改进之后的模型称为BM25L,遇到长文档时并不会失效,并且还保持原有的BM25特性.

实验效果验证

针对多个数据集 ,使用不同的调节参数$b$,$k_1$,$\delta$进行试验:

在第三章图明显可以发现BM25L的效果对BM25有较大的绝对提升,其中较优的参数范围为:

  1. $b \in [0,3,0.6] $
  2. $k_1 \in [1.0,2.0]$
  3. $\delta = 0.5$时最优

参考

  1. When Documents Are Very Long, BM25 Fails!

本作品采用[知识共享署名-非商业性使用-相同方式共享 2.5]中国大陆许可协议进行许可,我的博客欢迎复制共享,但在同时,希望保留我的署名权kubiCode,并且,不得用于商业用途。如您有任何疑问或者授权方面的协商,请给我留言

文章目录
  1. 1. 当BM25遇到长文档
  2. 2. 高效解决方案
  3. 3. 实验效果验证
  4. 4. 参考